package ooday04;

public class AnonInnerClassDemo {
    public static void main(String[] args) {
        //1)创建了Inter的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o1，向上造型为Inter类型
        //  ----new Inter(){};是在创建Inter的派生类的对象
        Inter o1 = new Inter() {

        };


        //1)创建了Inter的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o2，向上造型为Inter类型
        Inter o2 = new Inter() {

        };

        //1)创建了InterInter的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o3，向上造型为Inter类型
        //3)因为InterInter是接口，抽象类；所以其方法也是抽象方法，抽象方法在子类中必须重写，所以重写show()
        InterInter o3 = new InterInter() {

            public void show() {
                System.out.println("showshow");
            }
            //num=6;编译错误，匿名内部类中不能修改外面局部变量的值，因为该变量在此处默认为final的
        };
        int num = 5;
        num = 6;

        o3.show();

    }
}


interface InterInter {
    void show();
}

interface Inter {

}